#pragma once
#include "stdafx.h"

const unsigned int DEFAULT_READ_LENGTH = 32;
const unsigned int DEFAULT_MAPPING_PER_READ = 200;
const unsigned int MAX_MAP_NO_PER_READ = 2000; // should match MAX_Q_CAPACITY;
const unsigned int DEFAULT_UPPER_BOUND = 1000000;
//const unsigned int MAX_MAP_NO_PER_READ = 1000000; // should match MAX_Q_CAPACITY;

class CParseReadsOpts
{
public:
    CParseReadsOpts(void);
    virtual ~CParseReadsOpts(void);
    void setDefaults(void);
    char readsFile[FILENAME_MAX];
    char qualityFile[FILENAME_MAX];
    char cFileFormatSymbol;
    // Reads files (can be selected by reads file)
    bool bDiscardReadWithN;           // Default is true
    bool bMappedSOLiDRead;
    bool bMappedLongRead;
    bool bMappedLongRead2;
    bool bOddReadLengthAndLongRead;
    bool bOddReadLengthAndLongRead2;
    unsigned int truncatedReadLength;
    unsigned int allowedNumOfNinRead;
};

class BuildTableOpts
{
public:
    BuildTableOpts();
    unsigned int anchorLength;
    // for the paired-end
    unsigned int anchorLength2;
    int seedId;
    int seedId2;
    /*
    bool bMappedSOLiDRead;
    bool bMaskedMathRepeat;
    */
protected:
    void setDefaults(void);
};